Microprocessor and Digital Signal Processor operating systems commonly provide facilities for the management of data. Generally, a number of separate facilities, each supporting a narrow range of data management paradigms, are supported. Several distinct and separable data management mechanisms may be required by an application, necessitating the support of multiple divergent interfaces, with a resultant increase in executable image size and reduction in maintainability.
Data management mechanisms are often statically configurable in the prior art. Paged data mechanisms may require a priori knowledge of a fixed page size, page depth, connectivity and the quantity of available objects prior to execution. The absence of dynamic page allocation, configuration and release may significantly constrain the design of an application to accommodate the lack of flexibility in available data management mechanisms. The inability to configure individual instances of data management mechanisms to support diverse and specific application requirements results in inefficient resource allocation and available bandwidth reduction.
Some data management mechanisms do not support full duplex operation. Further, many data management mechanisms are not addressable, or employ fixed routing configurations. Such inflexible data management mechanisms are not readily extensible to support multiple data management paradigms, and may have limited utility. Dynamic routing configurations may provide extensible support for data management paradigms and processing protocols not currently envisioned, improving the candidacy for reuse of such mechanisms, and further supporting increased application efficiency and reduction in executable code image size. Reduction in executable code image size may be a significant benefit, especially in embedded processor and memory-constrained systems.
Data management mechanisms often do not abstract managed data. Such mechanisms may depend on partial or complete explicit a priori definition of the structure or nature of managed data prior to execution. Data management mechanisms may interrogate managed data, establishing a dependency on data form and content to ensure proper operation. The absence of complete data abstraction in data management mechanisms is in direct conflict with the principles of information hiding and encapsulation, and may result in a significant reduction in application robustness and maintainability.
Further, many data management mechanisms do not support in-place data allocation, production, transmission, reception or release. Reference operations are inherently more efficient than alternative value-oriented data management, as less processor or direct memory addressing unit bandwidth may be consumed relative to copying data.
Data management mechanisms do not commonly abstract data routing from transmission or reception. Routing abstractions may provide uncoupling or orthogonality in the design of producer and consumer entities, and increase the benefits associated with information hiding, including design simplification and reduced inter-thread communication requirements.
Data management mechanisms do not commonly support synchronization on data allocation, transmission and reception. Synchronization may be employed to facilitate robust application development and enhance application efficiency.
Finally, data management mechanisms do not commonly provide transparent accessibility by threads and interrupt service routines, in reentrant multi-threaded single processor and distributed environments.
Therefore, there exists a need in the art to provide flexible, generic and dynamically configurable data management mechanisms supporting dynamic allocation, configuration and release of distinct instances.
There also exists a need in the art for data management mechanisms to facilitate dynamically configurable routing. Instances of such data management mechanisms should provide multiple access ports, such that routing is configurable on a channel-specific basis.
Further, there exists a need in the art for data management mechanisms with the capability of supporting multiple data management paradigms. Data management mechanisms should provide such support simultaneously in a single instance, and allow multiple instances to exhibit divergent behavior.
There exists a need in the art for data management mechanisms to accommodate abstraction of managed data, and for data management mechanisms to support in-place data allocation, production, transmission, reception and release.
Additionally, there exists a need for data management mechanisms to abstract data routing from transmission and reception, uncoupling production and consumption entities.
There exists a need in the art for data management mechanisms to facilitate synchronization on data allocation, transmission and reception.
Finally, there exists a need in the art for reentrant and transparent accessibility of all of the aforementioned features and functionality by threads and interrupt service routines in multi-threaded single processor and distributed environments.
The following documents are referenced as supplying details related to potential components, software and hardware systems useful for the implementation of the present invention:
1. "TMS320C6x Digital Signal Processors Product Information", Texas Instruments Incorporated, part number SPRC010A (March 1998). PA0 2. "TMS320C62xx Technical Brief", Texas Instruments Incorporated, part number SPRU197A (October 1997). PA0 3. "TMS320C6x Assembly Language Tools User's Guide", Texas Instruments Incorporated, part number SPRU186C (February 1998). PA0 4. "TMS320C6x Optimizing C Compiler User's Guide", Texas Instruments Incorporated, part number SPRU187C (February 1998). PA0 5. "TMS320C6x C Source Debugger User's Guide", Texas Instruments Incorporated, part number SPRU188D (January 1998). PA0 6. "TMS320C62x/C67x CPU and Instruction Set Reference Guide", Texas Instruments Incorporated, part number SPRU189C (March 1998). PA0 7. "TMS320C6201/C6701 Peripherals Reference Guide", Texas Instruments Incorporated, part number SPRU190B (March 1998). PA0 8. "TMS320C62x/C67x Programmer's Guide", Texas Instruments Incorporated, part number SPRU198B (February 1998). PA0 9. "ASP Operating System Developer's Guide", DNA Enterprises, Incorporated, Larry Turner author, part number 745-02011-01 (Jun. 22, 1998).